Node specification
The specification of the WOLF ROS2 node is under the map node.
It contains three child nodes:
rate(scalar): The desired node frequency (in Hz).profiling(map): Specifies the generation of a profiling report.print(map): Specifies the print of the WOLF tree on the terminal.
Profiling report
profiling/enabled: If a profiling report is generated at the end of the execution. It will be printed to the console.profiling/file: (optional) the file where the profiling report will be saved (if profiling is enabled).
We recommend enabling profiling report as it provides valuable information about the performance of the WOLF application, including the time spent in each processor and the number of factors created. This information can help identify bottlenecks and optimize the application.
See also
For more information, check out Profiling section in Developing & understanding WOLF.
Print problem
The debugging and profiling options are specified in the YAML configuration file under the debug key. The parameters include:
print/problem: If the problem is printed to the console periodically. If set to true, the following parameters are also required:print/period: Period in seconds to print the problem.print/depth: Depth of the WOLF tree to print.print/state: If states are included in the printed problem.print/factored_by: If the factors affecting the states are printed.print/metric: If metrics are printed (i.e. measurements)print/state_blocks: If the state blocks are printed.
Unless debugging is required, it is recommended to disable the printing of the problem to the console.
Note
Remember that the YAML templates contains all the parameters of each class and a brief doc. You can start from the templates and modify them to suit your needs. See more information in the YAML schema section.
The following is the part of the WOLF ROS2 application example configuration file, containing the debugging and profiling specification.
node:
rate: 100.0
profiling:
enabled: true
file: "~/wolf_ros2_demo_laser2d_profiling.txt"
print:
enabled: true
period: 5 # only if enabled
depth: 4 # only if enabled
state: true # only if enabled
factored_by: true # only if enabled
metric: true # only if enabled
state_blocks: true # only if enabled